Currently, loop invariant code motion is an understood optimization in which an invariant computation is moved out of a loop without affecting the semantics of the program. Moving the invariant computation out of the loop allows for the calculation of a value to occur once and for the calculated value to be used multiple times within the loop. A computation is considered loop invariant if the computation contains no memory operands that can be affected during the execution of the loop. Since unnecessary calculations within the loop are removed outside of the loop, the runtime performance increases. However, within the loop there may be additional recurring calculations which can affect runtime performance.